package generics;

import java.util.ArrayList;
import java.util.List;

public class UnboundedWildcard {
    // 使用无界通配符：可以接收任意类型的List
    public static void printList(List<?> list) {
        for (Object obj : list) { // 只能用Object接收元素
            System.out.println(obj);
        }
    }

    public static void main(String[] args) {
        List<String> strList = new ArrayList<>();
        strList.add("Apple");
        strList.add("Banana");

        List<Integer> intList = new ArrayList<>();
        intList.add(10);
        intList.add(20);

        // 无界通配符可以接收不同类型的List
        printList(strList);
        printList(intList);

        // 注意：无界通配符的集合不能添加元素（除了null）
        List<?> wildcardList = new ArrayList<String>();
        // wildcardList.add("Hello"); // 编译错误：无法确定具体类型
        wildcardList.add(null); // 唯一例外
    }
}
